Database থেকে Entity Model জেনারেট করা

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Database First Approach |
205
205

Entity Framework এ, Database First অ্যাপ্রোচ ব্যবহার করে আপনি সরাসরি একটি বিদ্যমান ডেটাবেস থেকে Entity Models তৈরি করতে পারেন। এই প্রক্রিয়ায়, Entity Framework ডেটাবেসের কাঠামো (যেমন টেবিল, কলাম, এবং রিলেশনশিপ) থেকে Entity ক্লাস এবং DbContext তৈরি করে, যা পরে আপনার কোডে ব্যবহার করা যায়। এটি ডেটাবেস ডিজাইন করা হয়ে গেলে বা আপনি যদি ইতিমধ্যে একটি ডেটাবেস দিয়ে কাজ করতে চান তখন উপকারী হয়।


Database First Approach এর প্রক্রিয়া

1. ডেটাবেস সংযোগ তৈরি করা

প্রথমে, আপনি একটি Entity Framework Core অ্যাপ্লিকেশন তৈরি করবেন এবং একটি ডেটাবেস সংযোগ স্ট্রিং কনফিগার করবেন। এই কনফিগারেশনটি সাধারণত appsettings.json ফাইলে রাখা হয়।

appsettings.json এ সংযোগ স্ট্রিং:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=MyDatabase;Trusted_Connection=True;"
  }
}

2. Scaffold-DbContext কমান্ড ব্যবহার করা

Entity Framework Core একটি টুল সরবরাহ করে, যা Scaffold-DbContext কমান্ডের মাধ্যমে ডেটাবেস থেকে Entity Model তৈরি করতে সহায়তা করে। এই কমান্ডটি ডেটাবেস টেবিলগুলোকে Entity ক্লাসে রূপান্তরিত করে এবং সম্পর্কিত DbContext তৈরি করে।

এটা করার জন্য, আপনি নীচের পদক্ষেপগুলো অনুসরণ করতে পারেন:

  • কমান্ড লাইন বা Package Manager Console খুলুন।
  • Entity Framework Core এর NuGet প্যাকেজ ইনস্টল করুন, যদি এটি আগে থেকে ইনস্টল না করা থাকে। এটি Microsoft.EntityFrameworkCore.SqlServer এবং Microsoft.EntityFrameworkCore.Tools প্যাকেজগুলো অন্তর্ভুক্ত করে।

NuGet প্যাকেজ ইনস্টল করার কমান্ড:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
  • এবার Scaffold-DbContext কমান্ড রান করুন:
Scaffold-DbContext "Server=localhost;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context ApplicationDbContext -f

কমান্ড ব্যাখ্যা:

  • "Server=localhost;Database=MyDatabase": এটি ডেটাবেসের সংযোগ স্ট্রিং।
  • Microsoft.EntityFrameworkCore.SqlServer: ডেটাবেস সার্ভার হিসেবে SQL Server ব্যবহার হচ্ছে।
  • -OutputDir Models: Entity ক্লাস এবং DbContext ক্লাসটি কোথায় তৈরি হবে (এখানে Models ফোল্ডারে)।
  • -Context ApplicationDbContext: DbContext ক্লাসের নাম।
  • -f: যদি আগের কোনও ডেটাবেস মডেল থাকে, তাহলে তা ওভাররাইট করতে এই ফ্ল্যাগ ব্যবহার হয়।

3. Entity Models তৈরি হওয়া

উপরের কমান্ড চালানোর পরে, Entity Framework আপনার ডেটাবেসের প্রতিটি টেবিলের জন্য একটি Entity ক্লাস তৈরি করবে এবং আপনার Models ফোল্ডারে সেগুলো সেভ করবে। প্রতিটি Entity ক্লাস একটি টেবিলের প্রতিনিধিত্ব করবে এবং এর প্রপার্টিগুলি টেবিলের কলামগুলির সাথে মিলে যাবে।

উদাহরণস্বরূপ, যদি আপনার ডেটাবেসে একটি Users টেবিল থাকে, তাহলে Entity Framework একটি User ক্লাস তৈরি করবে:

public partial class User
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public string Email { get; set; }

    public ICollection<Order> Orders { get; set; } // Relationship
}

এছাড়া, DbContext ক্লাসও তৈরি হবে, যেখানে সকল Entity গুলোর জন্য DbSet প্রপার্টি থাকবে:

public partial class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }

    public virtual DbSet<User> Users { get; set; }
    public virtual DbSet<Order> Orders { get; set; }
}

এই DbContext ক্লাসটির মাধ্যমে আপনি ডেটাবেসের সকল টেবিলের সাথে যোগাযোগ করতে পারবেন।


4. Model Configuration এবং মাইগ্রেশন

ডেটাবেস থেকে Entity মডেল তৈরি করার পর, আপনি যদি কোনও কনফিগারেশন পরিবর্তন করতে চান, যেমন প্রপার্টির জন্য Data Annotations বা Fluent API ব্যবহার করা, তাহলে তা OnModelCreating মেথডে করতে হবে।

উদাহরণস্বরূপ:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>()
        .HasKey(u => u.UserId);

    modelBuilder.Entity<User>()
        .Property(u => u.UserName)
        .HasMaxLength(50)
        .IsRequired();
}

এইভাবে আপনি মডেলের কনফিগারেশন পরিবর্তন করতে পারেন।


5. Database Sync এবং Migrations

যদি আপনার ডেটাবেসে কোনও পরিবর্তন ঘটে, যেমন নতুন টেবিল তৈরি করা বা কোনও কলাম পরিবর্তন করা, আপনি সেই পরিবর্তনগুলি Entity Framework মডেলের সাথে সিঙ্ক করার জন্য Migrations ব্যবহার করতে পারেন।

মাইগ্রেশন তৈরি করার জন্য:

dotnet ef migrations add InitialMigration

এটি একটি নতুন মাইগ্রেশন তৈরি করবে, যা আপনার Entity Model এবং ডেটাবেসের মধ্যে সিঙ্ক্রোনাইজেশন নিশ্চিত করবে।

ডেটাবেস আপডেট করতে:

dotnet ef database update

এটি আপনার ডেটাবেসকে সর্বশেষ মাইগ্রেশন অনুযায়ী আপডেট করবে।


সারাংশ

Database First পদ্ধতিতে Entity Framework ব্যবহার করে আপনি একটি বিদ্যমান ডেটাবেস থেকে সরাসরি Entity Models এবং DbContext ক্লাস তৈরি করতে পারেন। এই পদ্ধতিটি ডেটাবেস-ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য খুবই উপকারী, যেখানে আপনি ডেটাবেসের কাঠামো পরিবর্তন না করে সরাসরি কোডের মধ্যে কাজ করতে চান। Scaffold-DbContext কমান্ডের মাধ্যমে আপনি দ্রুত মডেল তৈরি করতে পারবেন এবং মডেল কনফিগারেশন ও মাইগ্রেশন ব্যবস্থাপনা সহজে করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion